工控網(wǎng)首頁
>

應(yīng)用設(shè)計

>

英創(chuàng)EM928x/EM335x/ESM335x系列主板新CAN驅(qū)動使用說明

英創(chuàng)EM928x/EM335x/ESM335x系列主板新CAN驅(qū)動使用說明

  12月份,英創(chuàng)對現(xiàn)主要銷售的產(chǎn)品EM928X、EM335X、ESM335X系列工控主板的CAN驅(qū)動做了一次較大升級。主要目的是修復(fù)原有BUG,同時優(yōu)化部分邏輯,使得使用起來更加方便。

優(yōu)化內(nèi)容

  1、修復(fù)了原驅(qū)動打開過濾器后一個可能導(dǎo)致接收丟包的BUG

  EM335X及ESM335X系列主板在打開過濾器后,CAN接收單元過少,在高速收發(fā)時可能因為來不及收發(fā)導(dǎo)致丟包。新驅(qū)動修改了該部分邏輯,同時定義過濾器最大數(shù)為4個。新的過濾器設(shè)置說明請參考附錄《英創(chuàng)新CAN驅(qū)動接口調(diào)用方法及說明》過濾器設(shè)置一節(jié)。

  2、增加一套新的接口函數(shù)

  1)新的接口更加簡潔清晰,使用起來更加方便。詳細請參考附錄《英創(chuàng)新CAN驅(qū)動接口調(diào)用方法及說明》。

  2)使用統(tǒng)一標準,英創(chuàng)公司計劃在之后推出的產(chǎn)品也采用該標準,方便客戶在升級更換平臺時移植起來更加方便。

  3)完全兼容老驅(qū)動。新驅(qū)動保留了老驅(qū)動所有接口。升級之后,之前開發(fā)的CAN應(yīng)用程序可以繼續(xù)照常使用。

  3、增加對CAN總線錯誤自動復(fù)位功能,修改了CAN總線錯誤處理邏輯結(jié)構(gòu)

  原驅(qū)動在CAN總線出錯后會上報事件通知上層應(yīng)用程序,同時掛起等待上層應(yīng)用程序處理完錯誤事件后手動復(fù)位CAN總線。在等待期間,無法進行CAN的收發(fā)工作。

圖 原驅(qū)動總線錯誤處理流程

  新驅(qū)動考慮到,實際應(yīng)用中用戶更希望在CAN錯誤排除后,能夠盡快恢復(fù)通信。大部分時候并不需要停下來等待CAN錯誤處理完畢。所以新驅(qū)動在CAN總線出錯后會自動檢查恢復(fù)CAN總線。

圖 新驅(qū)動總線錯誤處理流程

  4、修改CAN總線錯誤處理模式

  原驅(qū)動需要單獨獲取CAN錯誤事件,然后再通過接口查詢錯誤類型,再決定處理方式。新驅(qū)動做優(yōu)化修改了處理模式,使得使用起來更靈活方便。

圖 原驅(qū)動CAN總線錯誤處理模式

  新驅(qū)動CAN總線錯誤信息改為通過幀形式上報,用戶可以通過注冊表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1]中BusErrorReport項設(shè)置是否需要接收錯誤幀,默認不接收。

圖 新驅(qū)動CAN總線錯誤處理模式

  錯誤幀詳細定義見附錄《CAN錯誤幀定義》。

  5、修改發(fā)送邏輯

  原驅(qū)動發(fā)送指令只是將需要發(fā)送的數(shù)據(jù)幀放入發(fā)送BUFFER區(qū),只要BUFFER區(qū)未滿均返回成功,但是不代表實際發(fā)送成功。

  原CAN驅(qū)動會自動檢查發(fā)送BUFFER區(qū)里未發(fā)送的CAN包并嘗試發(fā)送,對未發(fā)送成功的CAN包會自動重發(fā),直到發(fā)送成功。

  在CAN數(shù)據(jù)線斷開時,CAN發(fā)送指令會返回TRUE,但實際數(shù)據(jù)仍存在發(fā)送BUFFER中并未發(fā)送出去。當(dāng)CAN數(shù)據(jù)線重新連接后,BUFFER中的數(shù)據(jù)才得以發(fā)送。

圖 原驅(qū)動CAN發(fā)送流程

  新驅(qū)動發(fā)送函數(shù)為阻塞函數(shù),超時時間默認為1000ms,可以設(shè)置注冊表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1]中TxTimeout項修改該時間長短。返回值為實際發(fā)送是否成功的邏輯值。

  當(dāng)CAN總線錯誤,發(fā)送失敗后,CAN驅(qū)動不會自動重發(fā)CAN包,所以需要應(yīng)用層自行判斷是否重發(fā)。

圖 新驅(qū)動CAN發(fā)送流程

  6、增加CAN接收BUFFER到8K,可以緩存更多CAN包

附錄

  《英創(chuàng)新CAN驅(qū)動接口調(diào)用方法及說明》

  《CAN錯誤幀定義》

  成都英創(chuàng)信息技術(shù)有限公司

  http://www.emtronix.com

投訴建議

提交

查看更多評論
其他資訊

查看更多

Windows下STM32單片機eclipse編譯環(huán)境搭建

Android Studio應(yīng)用開發(fā)簡介

WinCE工控主板WiFi解決方案

敬請關(guān)注成都英創(chuàng)微信公眾號

WinCE工控主板通過PPI協(xié)議連接西門子PLC